package com.tfswx.jcyw.sqlmodel.api.function;

import com.googlecode.aviator.runtime.function.AbstractVariadicFunction;
import com.googlecode.aviator.runtime.type.AviatorObject;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @author 张述江
 * @date 2024/03/09
 */
public abstract class RuntimeFuntion extends AbstractVariadicFunction {
    @Override
    public AviatorObject variadicCall(Map<String, Object> env, AviatorObject... args) {
        return call(env, Arrays.asList(args));
    }

    public abstract AviatorObject call(Map<String, Object> env, List<AviatorObject> args);

    /**
     * 中文名称
     *
     * @return 中文名称
     */
    public abstract String getChineseName();

    /**
     * 英文名称
     *
     * @return 英文名称
     */
    public abstract String getEnglishName();

    @Override
    public String getName() {
        return getEnglishName();
    }
}
